#ifndef WAREHOUSESERVICE_H
#define WAREHOUSESERVICE_H

#include <QList>
#include <QMap>
#include <QString>
#include <QSqlQuery>
#include "pogo/vo/warehousevo.h"

class WarehouseService
{
public:
    /**
     * @brief 构造函数：初始化仓库服务
     */
    WarehouseService();

    /**
     * @brief 查询所有仓库及关联的货架信息
     * @param errorMsg 输出参数，用于返回错误信息（可选）
     * @return 包含所有仓库及其货架的VO对象列表
     */
    QList<WarehouseVO> getAllShelves(QString* errorMsg = nullptr);

    /**
     * @brief 按条件查询仓库及关联的货架信息
     * @param conditions 查询条件键值对
     * @param errorMsg 输出参数，用于返回错误信息（可选）
     * @return 符合条件的仓库VO对象列表
     */
    QList<WarehouseVO> getShelvesByCondition(const QMap<QString, QVariant>& conditions,
                                      QString* errorMsg = nullptr);

private:
    /**
     * @brief 将数据库查询结果转换为WarehouseVO列表
     * @param query 数据库查询结果集
     * @return 转换后的WarehouseVO对象列表
     */
    QList<WarehouseVO> queryToWarehouseVOList(QSqlQuery& query);
};

#endif // WAREHOUSESERVICE_H
